package com.example.wtx.generator;


import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.example.wtx.utils.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.sql.DataSource;


@Component
public class MyCodeGenerator {



    public void execute(SysConfigVo sysConfigVo) {
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/assessment", "root", "a135468+")
                .globalConfig(builder ->
                        builder.author(sysConfigVo.getAuthor()) // 设置作者
                                .enableSwagger() // 开启 swagger 模式
                                .outputDir(sysConfigVo.getOutputDir()) // 指定输出目录
                )
                .packageConfig(builder ->
                        builder.parent(sysConfigVo.getParentPackage()) // 设置父包名
                                .moduleName(sysConfigVo.getModuleName()) // 设置父包模块名
                                .entity("domain")
                                .service("service")
                                .controller("controller")
                                .serviceImpl("service.impl")
                                .mapper("mapper")
                                .xml("mapper")
                )
                .strategyConfig(builder ->
                        builder.addInclude(sysConfigVo.getTable()) // 设置需要生成的表名
                                .addTablePrefix("tb_")// 设置过滤表前缀
                )
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板，默认的是Velocity引擎模板
                .execute();
    }
}
